---
title: Github Actions
hide_title: true
---

import {
	AdvancedMarkdown,
	Aside,
	BuildConfigTool,
	Badge,
	BuildinfoIntroduction,
	BuildinfoBuildHelp,
	Card,
	CardGrid,
	Charts,
	Details,
	FileTree,
	GithubActions,
	Icon,
	LinkCard,
	Modal,
	Patchinfo,
	Scriptinfo,
	ScriptVersions,
	Steps,
	TabItem,
	Tabs
} from "/src/components/global.jsx"

This project relies heavily on Github Actions to build and release the binaries. The actions are defined in the `.github/workflows` directory.

:::note
The jobs can be viewed here: [https://github.com/userdocs/qbittorrent-nox-static/actions](https://github.com/userdocs/qbittorrent-nox-static/actions)

They workflows are located here: [https://github.com/userdocs/qbittorrent-nox-static/tree/master/.github/workflows](https://github.com/userdocs/qbittorrent-nox-static/tree/master/.github/workflows)
:::

## Github repo Actions settings

The required permissions for each workflow and job have been configured granularly in the workflows themselves. The permissions are defined in the `permissions` section of the workflow.

:::tip
They are already configured in the workflows and you should not need to configure any forked repos to use these actions.
:::

## Workflows

These workflows are using a reusable caller workflow that allows for inputs to be passed to the reusable workflows. This allows for a single workflow to be used to call multiple workflows with different inputs.

![](/qbittorrent-nox-static/docs_images/reusable_workflow_inputs.png)

This is the structure of the workflows:

```
ci-main-reusable-caller
├─ ci-debian-build
├─ ci-alpine-build
├─ ci-alpine-release
└─ ci-auto-rerun-failed-jobs
```

<Details summary="ci-main-reusable-caller">
The primary reusable caller workflow
<GithubActions id="ci_main_reusable_caller" />
</Details>

<Details summary="ci-debian-build">
The debian build workflow
<GithubActions id="ci_debian_build" />
</Details>

<Details summary="ci-alpine-build">
The alpine build workflow
<GithubActions id="ci_alpine_build" />
</Details>

<Details summary="ci-alpine-release">
The alpine release workflow
<GithubActions id="ci_alpine_release" />
</Details>

<Details summary="ci-auto-rerun-failed-jobs-action">
This workflow automatically reruns any failed jobs. Mostly targeted for the release jobs to ensure the release is created.
<GithubActions id="ci_auto_rerun_failed_jobs_action" />
</Details>
